<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // promise的周边方法；
      // let p = new Promise((res,rej)=>{
      // 		res();
      // })
      // p.then(res=>{
      // 	console.log(res);
      // }).catch(err=>{
      // 	console.log(err);
      // })

      // 一、静态方法；static 声明静态成员 ：和类有关系 和 对象没有关系；
      // 1.Promise.resolve();创建一个成功状态的promise对象
      //   let p = new Promise((res) => {
      //     res(222);
      //   });
      //   console.log(p);
      //   let p = Promise.resolve(111);
      //   console.log(p);

      //   // 2.创建一个失败状态的promise对象Promise.reject();
      //   let p = Promise.reject("ERR");
      //   console.log(p);
      //   // 3.执行多个promise对象 获取 执行最快的promise对象的结果；Promise.race();
      //   let p1 = new Promise((res) => {
      //     setTimeout(() => {
      //       res(154);
      //     }, 2000);
      //   });
      //   let p2 = new Promise((res) => {
      //     setTimeout(() => {
      //       res(184);
      //     }, 1000);
      //   });
      //   let p3 = new Promise((res) => {
      //     setTimeout(() => {
      //       res(159);
      //     }, 3000);
      //   });
      //   Promise.race([p1, p2, p3]).then((res) => {
      //     console.log(res);
      //   });
      //   // 4.执行多个promise对象（并列执行），获取结果 ；
      //   // Promise.all方法 必须要所有的promise都是成功的时候才能获取结果；
      //   let p1 = new Promise((res) => {
      //     setTimeout(() => {
      //       res(154);
      //     }, 2000);
      //   });
      //   let p2 = new Promise((res, rej) => {
      //     setTimeout(() => {
      //       rej(184);
      //     }, 1000);
      //   });
      //   let p3 = new Promise((res) => {
      //     setTimeout(() => {
      //       res(159);
      //     }, 3000);
      //   });
      //   Promise.all([p1, p2, p3]).then(
      //     (res) => {
      //       console.log(res);
      //     },
      //     (err) => {
      //       console.log(err);
      //     }
      //   );
      //   // 5.Promise.allSettled() :可以执行所有的promise对象 然后无论成功或者失败都可以收集到所有的结果；
      //   let p1 = new Promise((res) => {
      //     setTimeout(() => {
      //       res(154);
      //     }, 2000);
      //   });
      //   let p2 = new Promise((res, rej) => {
      //     setTimeout(() => {
      //       rej(184);
      //     }, 1000);
      //   });
      //   let p3 = new Promise((res) => {
      //     setTimeout(() => {
      //       res(159);
      //     }, 3000);
      //   });
      //   Promise.allSettled([p1, p2, p3]).then((res) => {
      //     console.log(res);
      //   });
      // 6.finally：最后的
      let p = new Promise((res, rej) => {
        // res(111);
        rej(222);
      });
      p.then(
        (res) => {
          console.log(res);
        },
        (err) => {
          console.log(err);
        }
      ).finally(() => {
        console.log("最后成功没成功都执行");
      });
    </script>
  </body>
</html>
